<html>
<head><meta charset="utf-8"><title>porting-to-datafrog · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html">porting-to-datafrog</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="126803267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803267">(May 19 2018 at 18:16)</a>:</h4>
<p>OK so now that we landed <a href="https://github.com/rust-lang-nursery/polonius/pull/36" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/36">https://github.com/rust-lang-nursery/polonius/pull/36</a> we gotta port the location-insensitive code to use <span class="emoji emoji-1f438" title="frog">:frog:</span> — I was saying to <span class="user-mention" data-user-id="116113">@lqd</span> that it would be good for <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> (or someone besides <span class="user-mention" data-user-id="116113">@lqd</span> and <span class="user-mention" data-user-id="116609">@Frank McSherry</span> , anyway) to do this, so that we can gain more experience</p>



<a name="126803371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803371">(May 19 2018 at 18:20)</a>:</h4>
<p>I can kinda give you a few tips</p>



<a name="126803373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803373">(May 19 2018 at 18:20)</a>:</h4>
<p>the basic ideas are the same as before — that is, we're breaking down into <code>join</code> operations etc</p>



<a name="126803377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803377">(May 19 2018 at 18:20)</a>:</h4>
<p>but in the new system you have to create explicit variables to represent each intermediate point</p>



<a name="126803384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803384">(May 19 2018 at 18:21)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="117381">@Arjan van Eersel</span> with whom I've been chatting in privmsg :)</p>



<a name="126803480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803480">(May 19 2018 at 18:24)</a>:</h4>
<p>I'm looking now for that video that <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> and I recorded :) youtube is kind of hard to navigate...</p>



<a name="126803527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803527">(May 19 2018 at 18:27)</a>:</h4>
<p>ok, found it. So what I was going to say is that the concepts from <a href="https://youtu.be/oTnbtGuSpWQ" target="_blank" title="https://youtu.be/oTnbtGuSpWQ">this video</a> still apply.</p>



<a name="126803534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803534">(May 19 2018 at 18:27)</a>:</h4>
<p>let me show an example; I think it's good to start by looking at the <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs">naive rules</a></p>



<a name="126803583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803583">(May 19 2018 at 18:29)</a>:</h4>
<p>(you could read <a href="https://github.com/frankmcsherry/blog/blob/master/posts/2018-05-19.md" target="_blank" title="https://github.com/frankmcsherry/blog/blob/master/posts/2018-05-19.md">@**Frank McSherry**'s blog post</a>, too, but you may not need to; it covers how the implementation works (as well as how to use it)</p>



<a name="126803588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803588">(May 19 2018 at 18:29)</a>:</h4>
<p>anyway the basic idea is that we are going to be iteratively building up the full set of tuples</p>



<a name="126803630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803630">(May 19 2018 at 18:30)</a>:</h4>
<p>so we first <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L44-L45" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L44-L45">create an iteration</a>:</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">iteration1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Iteration</span>::<span class="n">new</span><span class="p">();</span><span class="w"></span>
</pre></div>



<a name="126803638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803638">(May 19 2018 at 18:31)</a>:</h4>
<p>within the iteration you <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L47-L48" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L47-L48">create variables</a> representing the intermediate points</p>



<a name="126803639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803639">(May 19 2018 at 18:31)</a>:</h4>
<p>you have to declare these up-front, which is perhaps a bit confusing</p>



<a name="126803680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803680">(May 19 2018 at 18:32)</a>:</h4>
<p>these variables generally serve one of two purposes:</p>
<p>1. indexing an existing relation for a later join: this basically means mapping into a <code>(K, V)</code> tuple where the <code>K</code> represents the key that will be used in the join<br>
2. collecting the results of joins</p>



<a name="126803681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803681">(May 19 2018 at 18:32)</a>:</h4>
<p>as an example of an index, consider <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L51" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L51"><code>subset_r1p</code></a>:</p>



<a name="126803682"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803682" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803682">(May 19 2018 at 18:33)</a>:</h4>
<p>it is given a while <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L72" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L72">here</a>, during the while loop:</p>
<div class="codehilite"><pre><span></span><span class="n">subset_r1p</span><span class="p">.</span><span class="n">from_map</span><span class="p">(</span><span class="o">&amp;</span><span class="n">subset</span><span class="p">,</span><span class="w"> </span><span class="o">|&amp;</span><span class="p">(</span><span class="n">r1</span><span class="p">,</span><span class="w"> </span><span class="n">r2</span><span class="p">,</span><span class="w"> </span><span class="n">p</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="n">r1</span><span class="p">,</span><span class="w"> </span><span class="n">p</span><span class="p">),</span><span class="w"> </span><span class="n">r2</span><span class="p">));</span><span class="w"></span>
</pre></div>



<a name="126803687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803687">(May 19 2018 at 18:33)</a>:</h4>
<p>this <code>from_map</code> means "add the tuples resulting from applying the closure to <code>subset</code> into <code>subset_r1p</code>"</p>



<a name="126803688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803688">(May 19 2018 at 18:33)</a>:</h4>
<p>so in this case we take as input three tuples like <code>(r1, r2, p)</code> and reorganize them to <code>((r1, p), r2)</code> — this basically makes <code>(r1, p)</code> a <em>key</em> we can use to do a later join</p>



<a name="126803729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803729">(May 19 2018 at 18:34)</a>:</h4>
<p>similarly <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L73" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L73"><code>subset_r2p</code></a> makes the key be <code>(r2, p)</code></p>



<a name="126803730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803730">(May 19 2018 at 18:35)</a>:</h4>
<p>(you can sort of see the naming convention that <span class="user-mention" data-user-id="116609">@Frank McSherry</span> adopted here: <code>foo_xy</code> means "the relation <code>foo</code> with <code>x</code> and <code>y</code> selected as the key)</p>



<a name="126803739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803739">(May 19 2018 at 18:35)</a>:</h4>
<p>those two indices are then joined <a href="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L82" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/0fdac5f8fd2223666a014eebf991995b4ab990b6/src/output/naive.rs#L82">here</a> in order to achieve this bit of datalog:</p>
<div class="codehilite"><pre><span></span>subset(R1, R3, P) :-
    subset(R1, R2, P),
    subset(R2, R3, P).
</pre></div>



<a name="126803740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803740">(May 19 2018 at 18:35)</a>:</h4>
<p>(I'm also available to help <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> whenever, I also have some notes from converting the programs to <span class="emoji emoji-1f438" title="frog">:frog:</span> the very mechanical steps I followed; but which were of course conceptually similar to what you and niko went over on the video)</p>



<a name="126803782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803782">(May 19 2018 at 18:36)</a>:</h4>
<p>the key there is that you look for which variables the two relations have in common:</p>



<a name="126803784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803784">(May 19 2018 at 18:36)</a>:</h4>
<p>in this case, <code>R2</code> and <code>P</code> are shared between <code>subset(R1, R2, P)</code> and <code>subset(R2, R3, P)</code></p>



<a name="126803786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803786">(May 19 2018 at 18:36)</a>:</h4>
<p>in one case, <code>R2</code> appears in the second position, and in the other, in the first position, which is why we are joining <code>subset_r1p</code> and <code>subset_r2p</code></p>



<a name="126803792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803792">(May 19 2018 at 18:37)</a>:</h4>
<p>(I just realized that it might be a bit confusing that <code>R2</code> is kind of used in two distinct ways here: it might be clearer if we defined the datalog as:</p>
<div class="codehilite"><pre><span></span>subset(A, C, P) :-
    subset(A, B, P),
    subset(B, C, P).
</pre></div>



<a name="126803793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803793">(May 19 2018 at 18:37)</a>:</h4>
<p>in which case the variables in common are <code>B</code> and <code>P</code></p>



<a name="126803797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803797">(May 19 2018 at 18:37)</a>:</h4>
<p>and the index <code>subset_r1p</code> corresponds to <code>B</code> appearing in the first position (<code>subset(B, C, P)</code>)</p>



<a name="126803838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803838">(May 19 2018 at 18:38)</a>:</h4>
<p>whereas <code>subset_r2p</code> corresponds to <code>B</code> appearing in the second position (<code>subset(A, B, P)</code>)</p>



<a name="126803840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803840">(May 19 2018 at 18:38)</a>:</h4>
<p>anyway, I'll stop here — maybe that's enough to get you started :) but yeah feel free to leave questions and somebody can answer</p>



<a name="126803841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803841">(May 19 2018 at 18:38)</a>:</h4>
<p>it occurs to me I probably should have tried to write this up as actual text in Github and not on Zulip but oh well</p>



<a name="126803896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803896">(May 19 2018 at 18:41)</a>:</h4>
<p>i happen to also be reading through this</p>



<a name="126803938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803938">(May 19 2018 at 18:42)</a>:</h4>
<p>name suggestions for the new algorithm?</p>



<a name="126803939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803939">(May 19 2018 at 18:42)</a>:</h4>
<p><code>InsensitiveFrog</code>?</p>



<a name="126803951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803951">(May 19 2018 at 18:43)</a>:</h4>
<p>lol. Sure =) eventually I envision this being merged into the optimized-frog variant in any case</p>



<a name="126803992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803992">(May 19 2018 at 18:44)</a>:</h4>
<p>the name of the evil frog in the Muppets Most Wanted movie was Constantine</p>



<a name="126803993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803993">(May 19 2018 at 18:44)</a>:</h4>
<p>not sure how we can make use of that</p>



<a name="126803994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803994">(May 19 2018 at 18:44)</a>:</h4>
<p>or the name Kermit</p>



<a name="126803995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126803995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126803995">(May 19 2018 at 18:44)</a>:</h4>
<p>but we ... probably should</p>



<a name="126804338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804338">(May 19 2018 at 18:58)</a>:</h4>
<p>the only thing that i didn't understand from reading the code is the call to <code>.complete()</code></p>



<a name="126804347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804347">(May 19 2018 at 18:59)</a>:</h4>
<p>e.g. for the naive datafrog algorithm, it's being called on <code>subset_r1p</code></p>



<a name="126804349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804349">(May 19 2018 at 18:59)</a>:</h4>
<p>the return value of which is assigned to <code>subset</code></p>



<a name="126804352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804352">(May 19 2018 at 18:59)</a>:</h4>
<p>this makes me think that the result of <code>subset_r1p</code> is being assigned to <code>subset</code></p>



<a name="126804408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804408">(May 19 2018 at 19:01)</a>:</h4>
<p>which... doesn't quite make much sense to me, since in the iteration we also defined and calculated <code>subset_r2p</code>, <code>subset_p</code> and <code>subset</code>, and we only used <code>subset_r1p</code></p>



<a name="126804411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804411">(May 19 2018 at 19:01)</a>:</h4>
<p>doesn't this just throw away all our calculations for nothing?</p>



<a name="126804461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804461">(May 19 2018 at 19:03)</a>:</h4>
<p>ah, actually that's an inefficiency in the way it's expressed I think</p>



<a name="126804463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804463">(May 19 2018 at 19:03)</a>:</h4>
<p>that said, it's not <em>wrong</em></p>



<a name="126804464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804464">(May 19 2018 at 19:03)</a>:</h4>
<p>the naive algorithm should only have one iteration (there's an issue on GH about that)</p>



<a name="126804465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804465">(May 19 2018 at 19:03)</a>:</h4>
<p>in particular, we're going to iterate until a fixed point is reached</p>



<a name="126804502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804502">(May 19 2018 at 19:04)</a>:</h4>
<p>at that point, both <code>subset</code> and <code>subset_r1p</code> have the same set of tuples,</p>



<a name="126804505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804505">(May 19 2018 at 19:04)</a>:</h4>
<p>but organized differently</p>



<a name="126804509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804509">(May 19 2018 at 19:04)</a>:</h4>
<p>it happens to return the version that is indexed by <code>(r1, p)</code>, because that is what is needed later for a <code>join</code></p>



<a name="126804511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804511">(May 19 2018 at 19:04)</a>:</h4>
<p>indeed I think that the <em>main</em> <code>subset</code>  is not needed at all</p>



<a name="126804512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804512">(May 19 2018 at 19:04)</a>:</h4>
<p>you could just always keep the tuples organized like <code>((r1, p), r2)</code> instead of <code>(r1, r2, p)</code></p>



<a name="126804517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804517">(May 19 2018 at 19:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116108">@Keith Yeung</span> complete will turn the Variable storage (made to compute the joins in rounds w/ deltas) into the regular tuples you'd expect out of the computation</p>



<a name="126804611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804611">(May 19 2018 at 19:08)</a>:</h4>
<blockquote>
<p>at that point, both <code>subset</code> and <code>subset_r1p</code> have the same set of tuples,</p>
</blockquote>
<p>huh, this bit is unintuitive to me, because it means that by calculating <code>subset</code>, you also change the data that's in <code>subset_r1p</code></p>



<a name="126804618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804618">(May 19 2018 at 19:09)</a>:</h4>
<p>which i didn't quite expect, i thought this was supposed to be functional (i.e. without side effects)</p>



<a name="126804663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804663">(May 19 2018 at 19:10)</a>:</h4>
<p>the indexed variables are updated manually and independently from one another</p>



<a name="126804706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804706">(May 19 2018 at 19:12)</a>:</h4>
<p>oh wait, are you saying that <code>subset_r1q</code> is a <em>view</em> on <code>subset</code>?</p>



<a name="126804709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804709">(May 19 2018 at 19:12)</a>:</h4>
<p>doing things with subset will not touch subset_* — this part updates them <a href="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/naive.rs#L71-L74" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/naive.rs#L71-L74">https://github.com/rust-lang-nursery/polonius/blob/master/src/output/naive.rs#L71-L74</a></p>



<a name="126804716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804716">(May 19 2018 at 19:13)</a>:</h4>
<p>semantically yes, physically it will be a copy</p>



<a name="126804718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804718">(May 19 2018 at 19:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> ok, so why in the end do you only have a <code>subset_r1p.complete()</code>? why do you even bother to calculate <code>subset</code> in the iteration?</p>



<a name="126804760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804760">(May 19 2018 at 19:14)</a>:</h4>
<p>it is one of the inefficiencies, but it's the same data in fine</p>



<a name="126804767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804767">(May 19 2018 at 19:15)</a>:</h4>
<p>the indexing and manual maintenance is the thing that's more useful</p>



<a name="126804771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804771">(May 19 2018 at 19:15)</a>:</h4>
<p>to be clear</p>



<a name="126804773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804773">(May 19 2018 at 19:15)</a>:</h4>
<p>at first we were computing subset</p>



<a name="126804775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804775">(May 19 2018 at 19:15)</a>:</h4>
<p>but the next (useless) iteration used subset indexed differently</p>



<a name="126804818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804818">(May 19 2018 at 19:16)</a>:</h4>
<p>and reindexed subset, so we just removed part of the redundancy by returning the indexed that was already done before</p>



<a name="126804820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804820">(May 19 2018 at 19:16)</a>:</h4>
<p>yeah, it seems to me that both <code>subset</code> and <code>requires</code> are only useful for indexing</p>



<a name="126804826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804826">(May 19 2018 at 19:17)</a>:</h4>
<p>and in fact <code>subset</code> isn't being used at all in the final iteration</p>



<a name="126804828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804828">(May 19 2018 at 19:17)</a>:</h4>
<p>the pattern though will be exactly the same whether the data is used or not</p>



<a name="126804831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804831">(May 19 2018 at 19:17)</a>:</h4>
<p>yeah but they flow into each other tho</p>



<a name="126804877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804877">(May 19 2018 at 19:19)</a>:</h4>
<p>this is still not clear to me what in the world is happening</p>



<a name="126804878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804878">(May 19 2018 at 19:19)</a>:</h4>
<p>subset goes to requires which goes to borrow_live_at</p>



<a name="126804879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804879">(May 19 2018 at 19:19)</a>:</h4>
<p>lemme pose a question</p>



<a name="126804926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804926">(May 19 2018 at 19:20)</a>:</h4>
<p>I suggest focusing on the mechanical transformations of the datalog rules, "here are the steps I need to do for this rule" from this will flow variables, temporaries, and indices</p>



<a name="126804927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804927">(May 19 2018 at 19:20)</a>:</h4>
<p>oh wait, nvm</p>



<a name="126804928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804928">(May 19 2018 at 19:20)</a>:</h4>
<p>i'm seeing it now</p>



<a name="126804932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804932">(May 19 2018 at 19:20)</a>:</h4>
<p><code>subset_r1p</code> is being mapped from <code>subset</code></p>



<a name="126804933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804933">(May 19 2018 at 19:20)</a>:</h4>
<p>yes</p>



<a name="126804937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804937">(May 19 2018 at 19:21)</a>:</h4>
<p>I sent a link to those manual "view" mainenance lines :)</p>



<a name="126804941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804941">(May 19 2018 at 19:21)</a>:</h4>
<p>that <em>really</em> shouldn't be in the first position, since <code>subset_r1p</code> is a result of the computation</p>



<a name="126804980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804980">(May 19 2018 at 19:22)</a>:</h4>
<p>because what i thought before is that data is being copied from <code>subset</code> to <code>subset_r1p</code>, and then <code>subset_r1p</code> is then used to recompute <code>subset</code></p>



<a name="126804984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804984">(May 19 2018 at 19:23)</a>:</h4>
<p>and after that, no other data assignments happened to <code>subset_r1p</code></p>



<a name="126804989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804989">(May 19 2018 at 19:23)</a>:</h4>
<p>and we return <code>subset_r1p</code></p>



<a name="126804990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804990">(May 19 2018 at 19:23)</a>:</h4>
<p>which made the whole process of recomputing <code>subset</code> look useless</p>



<a name="126804992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126804992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126804992">(May 19 2018 at 19:23)</a>:</h4>
<p>obviously that's not how datafrog works</p>



<a name="126805035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805035">(May 19 2018 at 19:24)</a>:</h4>
<p>keep in mind these are all being iterated to a fixpoint</p>



<a name="126805054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805054">(May 19 2018 at 19:25)</a>:</h4>
<p>the datalog rules being the key</p>



<a name="126805093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805093">(May 19 2018 at 19:26)</a>:</h4>
<p>that's why they're always in the comments as well</p>



<a name="126805098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805098">(May 19 2018 at 19:26)</a>:</h4>
<p>the rest is manual maintenance, and positives and negatives of efficiency :)</p>



<a name="126805099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805099">(May 19 2018 at 19:26)</a>:</h4>
<p>the comments aren't enough, because this is a different programming model</p>



<a name="126805100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805100">(May 19 2018 at 19:26)</a>:</h4>
<p>lemme show you what i was thinking</p>



<a name="126805106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805106">(May 19 2018 at 19:27)</a>:</h4>
<p>did you see the differential dataflow analyses ?</p>



<a name="126805107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805107">(May 19 2018 at 19:27)</a>:</h4>
<p>i thought <code>subset_r1p.from_map(&amp;subset, ..)</code> meant <code>subset_r1p = subset.map(..)</code></p>



<a name="126805157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805157">(May 19 2018 at 19:29)</a>:</h4>
<p>so when i didn't see <code>subset_r1p</code> being "assigned to" anymore after the calculation of <code>subset</code>, i was very confused</p>



<a name="126805158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805158">(May 19 2018 at 19:29)</a>:</h4>
<p>I fail to see the difference, after both of those calls, subset_r1p and subset will have the "same" tuples, but ordered differently</p>



<a name="126805161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805161">(May 19 2018 at 19:29)</a>:</h4>
<p>ok understood</p>



<a name="126805162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805162">(May 19 2018 at 19:30)</a>:</h4>
<p>the difference is, <code>from_map</code> is only called at the beginning of the iteration</p>



<a name="126805209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805209">(May 19 2018 at 19:30)</a>:</h4>
<p>it was being assigned, in the next iteration of the loop :)</p>



<a name="126805210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805210">(May 19 2018 at 19:30)</a>:</h4>
<p>yes, this makes more sense now</p>



<a name="126805213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805213">(May 19 2018 at 19:30)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="thumbs up">:thumbs_up:</span></p>



<a name="126805226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805226">(May 19 2018 at 19:31)</a>:</h4>
<p>those rules are the beginning, in my mind, as they are tangential to the datalog</p>



<a name="126805228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805228">(May 19 2018 at 19:31)</a>:</h4>
<p>similar to the .map calls that were more localized in DD</p>



<a name="126805231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805231">(May 19 2018 at 19:32)</a>:</h4>
<p>next question, what's the purpose of <code>variable_indistinct()</code>?</p>



<a name="126805270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805270">(May 19 2018 at 19:32)</a>:</h4>
<p>a lot of those would be hidden by DD</p>



<a name="126805273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805273">(May 19 2018 at 19:32)</a>:</h4>
<p>also keep in mind this whole thing started like wednesday so we're a little light on "best practices" and rationale for communicating everything :D</p>



<a name="126805280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805280">(May 19 2018 at 19:33)</a>:</h4>
<p>variable indistinct is a way to control whether the variable will need to be deduped or not</p>



<a name="126805283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805283">(May 19 2018 at 19:33)</a>:</h4>
<p>similar to how DD used distinct to ask for deduplication</p>



<a name="126805323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805323">(May 19 2018 at 19:34)</a>:</h4>
<p>in most temporaries, indexes, there's no need for this, and slows things down</p>



<a name="126805326"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805326" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805326">(May 19 2018 at 19:34)</a>:</h4>
<p>it's mostly for performance though</p>



<a name="126805328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805328">(May 19 2018 at 19:34)</a>:</h4>
<p>AFAIUI</p>



<a name="126805336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805336">(May 19 2018 at 19:35)</a>:</h4>
<p>as to not sort/dedup/copy everything all the time</p>



<a name="126805344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805344">(May 19 2018 at 19:35)</a>:</h4>
<p>I don't Frank's article on <span class="emoji emoji-1f438" title="frog">:frog:</span> mentions these but yeah</p>



<a name="126805391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805391">(May 19 2018 at 19:37)</a>:</h4>
<p>hmm... so the most important part is how it's different from just calling <code>variable</code>, but i guess it just means <code>variable</code> is duplicated by default</p>



<a name="126805435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805435">(May 19 2018 at 19:38)</a>:</h4>
<p>by default they are maintained "distinctly"</p>



<a name="126805437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805437">(May 19 2018 at 19:38)</a>:</h4>
<p>so deduped</p>



<a name="126805450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805450">(May 19 2018 at 19:39)</a>:</h4>
<p>(btw datafrog has some documentation by now)</p>



<a name="126805456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805456">(May 19 2018 at 19:39)</a>:</h4>
<p>ohhh ok, so that's why intermediate vars benefit from indistinct</p>



<a name="126805457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805457">(May 19 2018 at 19:39)</a>:</h4>
<p>am reading the source code rn</p>



<a name="126805503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805503">(May 19 2018 at 19:40)</a>:</h4>
<p>here <a href="https://github.com/frankmcsherry/datafrog/blob/master/src/lib.rs#L111-L115" target="_blank" title="https://github.com/frankmcsherry/datafrog/blob/master/src/lib.rs#L111-L115">https://github.com/frankmcsherry/datafrog/blob/master/src/lib.rs#L111-L115</a></p>



<a name="126805507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805507">(May 19 2018 at 19:40)</a>:</h4>
<p>yeah</p>



<a name="126805510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805510">(May 19 2018 at 19:40)</a>:</h4>
<p>and because they are usually indexed from already deduped relations</p>



<a name="126805665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805665">(May 19 2018 at 19:47)</a>:</h4>
<blockquote>
<p>i thought <code>subset_r1p.from_map(&amp;subset, ..)</code> meant <code>subset_r1p = subset.map(..)</code></p>
</blockquote>
<p>it actually means <code>subset_r1p += subset.map(..)</code></p>



<a name="126805666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805666">(May 19 2018 at 19:47)</a>:</h4>
<p>(where <code>subset_r1p</code> is a set)</p>



<a name="126805668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805668">(May 19 2018 at 19:47)</a>:</h4>
<p>perhaps <code>extend_from_map</code> or something would be a better name</p>



<a name="126805669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805669">(May 19 2018 at 19:48)</a>:</h4>
<p>(to connect to Rust's <code>extend</code> methods)</p>



<a name="126805714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805714">(May 19 2018 at 19:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> the key thing i missed was that we're inside of an iteration, so tuples carried over from previous ones</p>



<a name="126805715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805715">(May 19 2018 at 19:49)</a>:</h4>
<p>i thought it was an "all-at-once" assignment</p>



<a name="126805716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126805716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126805716">(May 19 2018 at 19:49)</a>:</h4>
<p>yeah; this is why I say <code>+=</code> or <code>extend</code></p>



<a name="126806124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126806124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Frank McSherry <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126806124">(May 19 2018 at 20:04)</a>:</h4>
<p>I'm here! But I drank a bunch, and also read HN which !#$!@# is just never smart.</p>



<a name="126806135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126806135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Frank McSherry <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126806135">(May 19 2018 at 20:05)</a>:</h4>
<p>Trying to avoid telling Google's head of cloud programming languages that I can't take his or her opinion seriously as long as their stream processor remotes all of its state to other machines.</p>



<a name="126806229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126806229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Frank McSherry <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126806229">(May 19 2018 at 20:08)</a>:</h4>
<p>Also, Vienna is a happier place than Zürich. Totally. :D</p>



<a name="126806389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126806389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126806389">(May 19 2018 at 20:14)</a>:</h4>
<p>oh shoot, i didn't notice that <span class="user-mention" data-user-id="117381">@Arjan van Eersel</span> has already been working on <a href="https://github.com/rust-lang-nursery/polonius/issues/37" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/37">https://github.com/rust-lang-nursery/polonius/issues/37</a>!</p>



<a name="126806390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126806390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126806390">(May 19 2018 at 20:14)</a>:</h4>
<p>i already made a PR fixing that issue...</p>



<a name="126806398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126806398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Keith Yeung <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126806398">(May 19 2018 at 20:15)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/pull/39" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/39">https://github.com/rust-lang-nursery/polonius/pull/39</a></p>



<a name="126887395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126887395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126887395">(May 21 2018 at 19:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116108">@Keith Yeung</span> sorry I didn't get a chance to try that out yet btw, hopefully soon</p>



<a name="126887489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126887489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126887489">(May 21 2018 at 19:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> so were you going to hack on that now?</p>



<a name="126887519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126887519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126887519">(May 21 2018 at 19:19)</a>:</h4>
<p>yes</p>



<a name="126887568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126887568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126887568">(May 21 2018 at 19:20)</a>:</h4>
<p>pulling and stuff now :)</p>



<a name="126889297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889297">(May 21 2018 at 19:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> how many potential_errors did you get on clap btw ? I only remember how long it took</p>



<a name="126889379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889379">(May 21 2018 at 19:57)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> hmm don't remember, unsure if I ran with clap or with another example</p>



<a name="126889667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889667">(May 21 2018 at 20:03)</a>:</h4>
<p>I don't think there are "invalidates" points in the other dataset, some maybe one of yours</p>



<a name="126889750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889750">(May 21 2018 at 20:04)</a>:</h4>
<p>to be honest I don't remember what I did, will try to port this thing and test again</p>



<a name="126889764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889764">(May 21 2018 at 20:05)</a>:</h4>
<p>was reading <span class="user-mention" data-user-id="116609">@Frank McSherry</span> blog post now to see how's the deal :)</p>



<a name="126889765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889765">(May 21 2018 at 20:05)</a>:</h4>
<p>(in any case I built a version of the location insensitive thing so that I can help you with it if you had questions while doing yours — but as I don't know what the correct numbers are, it's stIll buggy <span class="emoji emoji-1f642" title="simple smile">:simple_smile:</span></p>



<a name="126889828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889828">(May 21 2018 at 20:06)</a>:</h4>
<p>I suggest to base your work on the version of the "<a href="http://naive.rs" target="_blank" title="http://naive.rs">naive.rs</a>" that Keith has a PR for, it's a tad bit simpler than the one in master right now</p>



<a name="126889914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126889914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126889914">(May 21 2018 at 20:08)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126891352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126891352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126891352">(May 21 2018 at 20:38)</a>:</h4>
<p>oh but issue-47680 does have invalidates facts in the repo, but not in your PR #34, so you should be good to go (+ clap has some as well) :)</p>



<a name="126891394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126891394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126891394">(May 21 2018 at 20:39)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126894805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126894805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126894805">(May 21 2018 at 21:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>  I _think_ PR #34 doesn't find potential errors for the <code>issue</code>dataset — &amp; it feels like the last timely join might be the cause — but does have data for <code>restricts_anywhere </code> and <code>subset_anywhere</code>. Just a heads up if you're also using it as a guide for your port :) (&amp; if that's the case I'd focus on translating the datalog rules, rather than transliterating the timely compute too precisely)</p>



<a name="126894829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126894829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126894829">(May 21 2018 at 21:59)</a>:</h4>
<p>ok</p>



<a name="126894833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126894833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126894833">(May 21 2018 at 21:59)</a>:</h4>
<p>will check that later</p>



<a name="126895339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895339">(May 21 2018 at 22:13)</a>:</h4>
<p>maybe there are no potential errors in those datasets :D</p>



<a name="126895389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895389">(May 21 2018 at 22:14)</a>:</h4>
<p>have just finished porting LocationInsensitive stuff</p>



<a name="126895400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895400">(May 21 2018 at 22:15)</a>:</h4>
<p>I'd be pretty surprised if the issue-47680 had no error</p>



<a name="126895403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895403">(May 21 2018 at 22:15)</a>:</h4>
<p>when run w/ out loc sensitivity</p>



<a name="126895405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895405">(May 21 2018 at 22:15)</a>:</h4>
<p>in fact more than surprised :)</p>



<a name="126895460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895460">(May 21 2018 at 22:16)</a>:</h4>
<p>mine finds 2</p>



<a name="126895477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895477">(May 21 2018 at 22:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> once you get the hang of it, translation is pretty straight-forward right ?</p>



<a name="126895479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895479">(May 21 2018 at 22:17)</a>:</h4>
<p>in order to test location insensitive, are you using some example?</p>



<a name="126895522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895522">(May 21 2018 at 22:18)</a>:</h4>
<p>yes issue-47680</p>



<a name="126895529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895529">(May 21 2018 at 22:18)</a>:</h4>
<p>yes, it's easy, I may have done something wrong though :P</p>



<a name="126895538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895538">(May 21 2018 at 22:18)</a>:</h4>
<p>(tbf I have not tried the new "treefrog leapjoin" but that would definitely help in our more complex cases)</p>



<a name="126895590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895590">(May 21 2018 at 22:20)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/pull/41" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/41">https://github.com/rust-lang-nursery/polonius/pull/41</a></p>



<a name="126895619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895619">(May 21 2018 at 22:20)</a>:</h4>
<p>in fact I'm surprised how better the code and easy to read is</p>



<a name="126895627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895627">(May 21 2018 at 22:20)</a>:</h4>
<p>again, I may be missing something important :P</p>



<a name="126895631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895631">(May 21 2018 at 22:20)</a>:</h4>
<p>haven't tested the thing yet</p>



<a name="126895652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895652">(May 21 2018 at 22:21)</a>:</h4>
<p>yeah I think a couple things are missing, almost done :)</p>



<a name="126895712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895712">(May 21 2018 at 22:22)</a>:</h4>
<p>oh maybe you're not porting your PR#34 ? I see no invalidates</p>



<a name="126895716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895716">(May 21 2018 at 22:22)</a>:</h4>
<p>no no</p>



<a name="126895717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895717">(May 21 2018 at 22:22)</a>:</h4>
<p>oh :D</p>



<a name="126895718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895718">(May 21 2018 at 22:22)</a>:</h4>
<p>I'm not porting that</p>



<a name="126895720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895720">(May 21 2018 at 22:22)</a>:</h4>
<p>I wanted to just port what's in master</p>



<a name="126895724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895724">(May 21 2018 at 22:23)</a>:</h4>
<p>then I can force push that PR</p>



<a name="126895728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895728">(May 21 2018 at 22:23)</a>:</h4>
<p>I mean, port that port and force push there</p>



<a name="126895729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895729">(May 21 2018 at 22:23)</a>:</h4>
<p>then I retract my previous statements! :D</p>



<a name="126895731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895731">(May 21 2018 at 22:23)</a>:</h4>
<p>heheh <span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126895742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895742">(May 21 2018 at 22:23)</a>:</h4>
<p>once I get the OK or is it merged I can start porting the other part</p>



<a name="126895786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895786">(May 21 2018 at 22:24)</a>:</h4>
<p>anyway I'm not 100% sure how some things in datafrog work</p>



<a name="126895803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895803">(May 21 2018 at 22:25)</a>:</h4>
<p>mainly how the iterations work, I may be guessing that correctly but better to be 100% sure</p>



<a name="126895804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895804">(May 21 2018 at 22:25)</a>:</h4>
<p>I guess the blog post explains a bit that</p>



<a name="126895810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895810">(May 21 2018 at 22:25)</a>:</h4>
<p>probably don't need the clone in <code>all_facts.region_live_at.clone()</code></p>



<a name="126895868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895868">(May 21 2018 at 22:27)</a>:</h4>
<p>right, I've added that after saw an error but yeah doesn't seem to be needed</p>



<a name="126895879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126895879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126895879">(May 21 2018 at 22:27)</a>:</h4>
<p>fixed</p>



<a name="126896042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896042">(May 21 2018 at 22:31)</a>:</h4>
<p>I guess it would be cool to be able to test it, but it certainly _looks good_ :)</p>



<a name="126896052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896052">(May 21 2018 at 22:31)</a>:</h4>
<p>so iteration is just in case there are a lot of rules that one ends affecting the other one?</p>



<a name="126896054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896054">(May 21 2018 at 22:32)</a>:</h4>
<p>facts go outside that because are ... facts</p>



<a name="126896055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896055">(May 21 2018 at 22:32)</a>:</h4>
<p>slight nit: the "// redundantly computed index" can be removed since you only have one and it's not an index</p>



<a name="126896107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896107">(May 21 2018 at 22:32)</a>:</h4>
<p>yeah the iteration is the thing that will create new tuples from the existing ones by applying the rules — all until no more tuples are created</p>



<a name="126896122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896122">(May 21 2018 at 22:33)</a>:</h4>
<p>tuples = facts here as well — the input facts / inputs indeed are outside</p>



<a name="126896186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896186">(May 21 2018 at 22:34)</a>:</h4>
<p>I wish I didn't add this "redudantly computed" comment as it's obviously not clear enough what I meant at all</p>



<a name="126896401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896401">(May 21 2018 at 22:40)</a>:</h4>
<blockquote>
<p>slight nit: the "// redundantly computed index" can be removed since you only have one and it's not an index</p>
</blockquote>
<p>fixed</p>



<a name="126896422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896422">(May 21 2018 at 22:41)</a>:</h4>
<blockquote>
<p>I wish I didn't add this "redudantly computed" comment as it's obviously not clear enough what I meant at all</p>
</blockquote>
<p>don't worry, it was just a copy &amp; paste thing and forgot to remove that</p>



<a name="126896778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896778">(May 21 2018 at 22:51)</a>:</h4>
<p>as I'm about to go to sleep, I _think_ this is the <code>potential_errors</code> your PR#34 would find on issue-47680:</p>
<div class="codehilite"><pre><span></span># potential_errors
&quot;Mid(bb3[2])&quot;  &quot;bw1&quot;
&quot;Mid(bb10[2])&quot; &quot;bw2&quot;
</pre></div>



<a name="126896948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896948">(May 21 2018 at 22:56)</a>:</h4>
<p>and is that fine?</p>



<a name="126896951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896951">(May 21 2018 at 22:56)</a>:</h4>
<p>haven't gone through it yet</p>



<a name="126896952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896952">(May 21 2018 at 22:56)</a>:</h4>
<p>haven't checked the mir</p>



<a name="126896954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896954">(May 21 2018 at 22:57)</a>:</h4>
<p>and I don't even remember what the example is about :P</p>



<a name="126896961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896961">(May 21 2018 at 22:57)</a>:</h4>
<p>I don't know :)</p>



<a name="126896964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896964">(May 21 2018 at 22:57)</a>:</h4>
<p>ok :)</p>



<a name="126896967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896967">(May 21 2018 at 22:57)</a>:</h4>
<p>we would need to figure that out</p>



<a name="126896971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126896971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126896971">(May 21 2018 at 22:57)</a>:</h4>
<p>yeah — I hoped to compare at least to the timely one but it doesn't find any errors</p>



<a name="126903435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126903435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126903435">(May 22 2018 at 02:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <a href="https://github.com/rust-lang-nursery/polonius/pull/41" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/41">https://github.com/rust-lang-nursery/polonius/pull/41</a> and <a href="https://github.com/rust-lang-nursery/polonius/pull/34" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34">https://github.com/rust-lang-nursery/polonius/pull/34</a>, #34 builds on top of #41 so I'd probably need to rebase #34 after #41 is merged</p>



<a name="126913477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126913477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126913477">(May 22 2018 at 08:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> nice job on the #34 rewrite :) a couple of things: 1) invalidates_lp is an index over static data, we don't need to remap it as no new facts will be added during the iteration 2) and since it's static data you could also get rid of the invalidates + invalidates_lp copy, one of those 2 is not strictly necessary and one could fill it in the "((loan, point) ())" format directly before the iteration</p>



<a name="126918041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126918041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126918041">(May 22 2018 at 11:16)</a>:</h4>
<p>I guess I should have left those on github, a bit easier to review with all the information in a single place</p>



<a name="126918538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126918538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126918538">(May 22 2018 at 11:32)</a>:</h4>
<p>that makes perfect sense</p>



<a name="126918539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126918539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126918539">(May 22 2018 at 11:32)</a>:</h4>
<p>unsure why I did it the way I did</p>



<a name="126918550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126918550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126918550">(May 22 2018 at 11:33)</a>:</h4>
<p>fixed /cc <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="126918605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126918605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126918605">(May 22 2018 at 11:35)</a>:</h4>
<p>nice :)</p>



<a name="126922822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126922822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126922822">(May 22 2018 at 13:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> let me know if you have the output from your analysis for issue-47680</p>



<a name="126922826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126922826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126922826">(May 22 2018 at 13:30)</a>:</h4>
<p>I can kind of sanity check it</p>



<a name="126922926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126922926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126922926">(May 22 2018 at 13:32)</a>:</h4>
<p>potential_errors is empty</p>



<a name="126922943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126922943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126922943">(May 22 2018 at 13:33)</a>:</h4>
<p>ok, I think that is almost certainly wrong</p>



<a name="126922964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126922964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126922964">(May 22 2018 at 13:33)</a>:</h4>
<p>because borrow_live_at is empty</p>



<a name="126923009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923009">(May 22 2018 at 13:34)</a>:</h4>
<p>huh, that seems wrong</p>



<a name="126923011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923011">(May 22 2018 at 13:34)</a>:</h4>
<p>for both main and maybe_next</p>



<a name="126923026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923026">(May 22 2018 at 13:34)</a>:</h4>
<p>sorry, sorry, for main borrow_live_at is not empty</p>



<a name="126923036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923036">(May 22 2018 at 13:35)</a>:</h4>
<p>I think that <code>main</code> is the function of interest</p>



<a name="126923051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923051">(May 22 2018 at 13:35)</a>:</h4>
<p>I guess I could build locally and inspect</p>



<a name="126923062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923062">(May 22 2018 at 13:35)</a>:</h4>
<p>hmm I'm not dumping invalidates</p>



<a name="126923064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923064">(May 22 2018 at 13:35)</a>:</h4>
<p>need to see what's that</p>



<a name="126923068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923068">(May 22 2018 at 13:35)</a>:</h4>
<p>probably because that's an input</p>



<a name="126923077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923077">(May 22 2018 at 13:35)</a>:</h4>
<p>I have a lead</p>



<a name="126923142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923142">(May 22 2018 at 13:36)</a>:</h4>
<p><code>crate invalidates: Vec&lt;(Loan, Point)&gt;</code> but the data looks like "Start(bb1[0])" "bw1" eg the reverse order ?</p>



<a name="126923239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923239">(May 22 2018 at 13:38)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> ↑</p>



<a name="126923243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923243">(May 22 2018 at 13:38)</a>:</h4>
<p>:)</p>



<a name="126923255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923255">(May 22 2018 at 13:39)</a>:</h4>
<p>that was one of the things I needed to check</p>



<a name="126923269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923269">(May 22 2018 at 13:39)</a>:</h4>
<p>also ... why are we only filling borrow_live_at for results and then trying to dump everything?</p>



<a name="126923306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126923306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126923306">(May 22 2018 at 13:40)</a>:</h4>
<p>shouldn't we fill all the stuff if the thing was run with verbose?</p>



<a name="126924473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924473">(May 22 2018 at 14:03)</a>:</h4>
<p>so ... my question is about this part <a href="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R96" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R96">https://github.com/rust-lang-nursery/polonius/pull/34/files#diff-2cacc48f0a2b0432151b6f258162f827R96</a></p>



<a name="126924492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924492">(May 22 2018 at 14:03)</a>:</h4>
<p>we were only filling borrow_live_at and I've changed to fill potential_errors (and I think what I did is not right)</p>



<a name="126924499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924499">(May 22 2018 at 14:03)</a>:</h4>
<p>but shouldn't we fill all there?</p>



<a name="126924609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924609">(May 22 2018 at 14:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I don't understand what you're asking :(</p>



<a name="126924659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924659">(May 22 2018 at 14:06)</a>:</h4>
<p>ok</p>



<a name="126924661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924661">(May 22 2018 at 14:06)</a>:</h4>
<p>first of all I was doing it wrong</p>



<a name="126924665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924665">(May 22 2018 at 14:06)</a>:</h4>
<p>the current code is giving</p>



<a name="126924668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924668">(May 22 2018 at 14:06)</a>:</h4>
<p># potential_errors</p>
<p>"Mid(bb3[2])"  "bw1"<br>
"Mid(bb10[2])" "bw2"</p>



<a name="126924677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924677">(May 22 2018 at 14:06)</a>:</h4>
<p>then we are filling only 1 part of Output</p>



<a name="126924678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924678">(May 22 2018 at 14:07)</a>:</h4>
<p>left a comment btw</p>



<a name="126924679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924679">(May 22 2018 at 14:07)</a>:</h4>
<p>and trying to dump all</p>



<a name="126924685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924685">(May 22 2018 at 14:07)</a>:</h4>
<p>so</p>



<a name="126924688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924688">(May 22 2018 at 14:07)</a>:</h4>
<p>let me show you the code</p>



<a name="126924691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924691">(May 22 2018 at 14:07)</a>:</h4>
<p>which might answer this</p>



<a name="126924775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924775">(May 22 2018 at 14:08)</a>:</h4>
<p>that doesn't answer exactly</p>



<a name="126924778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924778">(May 22 2018 at 14:08)</a>:</h4>
<p>this one was another question I have</p>



<a name="126924782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924782">(May 22 2018 at 14:08)</a>:</h4>
<p>this error <code>"Mid(bb3[2])" "bw1"</code> certainly seems right</p>



<a name="126924789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924789">(May 22 2018 at 14:08)</a>:</h4>
<p>let me show you two things</p>



<a name="126924791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924791">(May 22 2018 at 14:08)</a>:</h4>
<p>I have two questions</p>



<a name="126924796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924796">(May 22 2018 at 14:08)</a>:</h4>
<p>the first is about master</p>



<a name="126924799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924799">(May 22 2018 at 14:09)</a>:</h4>
<p>not related with my PR</p>



<a name="126924800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924800">(May 22 2018 at 14:09)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/location_insensitive.rs#L81-L87" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/location_insensitive.rs#L81-L87">https://github.com/rust-lang-nursery/polonius/blob/master/src/output/location_insensitive.rs#L81-L87</a></p>



<a name="126924801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924801">(May 22 2018 at 14:09)</a>:</h4>
<p>ok</p>



<a name="126924808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924808">(May 22 2018 at 14:09)</a>:</h4>
<p>here we fill result</p>



<a name="126924818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924818">(May 22 2018 at 14:09)</a>:</h4>
<p>right</p>



<a name="126924830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924830">(May 22 2018 at 14:09)</a>:</h4>
<p>and here <a href="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/mod.rs#L66-L95" target="_blank" title="https://github.com/rust-lang-nursery/polonius/blob/master/src/output/mod.rs#L66-L95">https://github.com/rust-lang-nursery/polonius/blob/master/src/output/mod.rs#L66-L95</a> we dump</p>



<a name="126924842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924842">(May 22 2018 at 14:09)</a>:</h4>
<p>what I'm saying is that dump_enabled doesn't work</p>



<a name="126924843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924843">(May 22 2018 at 14:09)</a>:</h4>
<p>because stuff is never filled</p>



<a name="126924934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924934">(May 22 2018 at 14:11)</a>:</h4>
<p>yeah, seems like that got lost somewhere along the way</p>



<a name="126924950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126924950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126924950">(May 22 2018 at 14:11)</a>:</h4>
<p>we used to check if <code>dump_enabled</code> and add in the data in that case</p>



<a name="126925073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925073">(May 22 2018 at 14:13)</a>:</h4>
<p>exactly</p>



<a name="126925075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925075">(May 22 2018 at 14:13)</a>:</h4>
<p>will add that</p>



<a name="126925082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925082">(May 22 2018 at 14:13)</a>:</h4>
<p>and the other question was exactly what you've said</p>



<a name="126925086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925086">(May 22 2018 at 14:13)</a>:</h4>
<p>the already discussed this</p>



<a name="126925088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925088">(May 22 2018 at 14:13)</a>:</h4>
<p>don't remember very well</p>



<a name="126925095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925095">(May 22 2018 at 14:13)</a>:</h4>
<p>but seems like we want potential_errors outside dump_enabled</p>



<a name="126925135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925135">(May 22 2018 at 14:14)</a>:</h4>
<p>confirm</p>



<a name="126925141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925141">(May 22 2018 at 14:14)</a>:</h4>
<p>the thing is that is only right for insensitive</p>



<a name="126925151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925151">(May 22 2018 at 14:14)</a>:</h4>
<p>actually, I think that <code>borrow_live_at</code> should go <em>into</em> <code>dump_enabled</code> — eventually</p>



<a name="126925156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925156">(May 22 2018 at 14:14)</a>:</h4>
<p>we would have to extend <code>datafrogopt</code> to use invalidates</p>



<a name="126925157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925157">(May 22 2018 at 14:14)</a>:</h4>
<p>which,...we should do</p>



<a name="126925160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925160">(May 22 2018 at 14:14)</a>:</h4>
<p>it's more-or-less the same code you already wrote</p>



<a name="126925166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925166">(May 22 2018 at 14:14)</a>:</h4>
<p>ok</p>



<a name="126925176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925176">(May 22 2018 at 14:15)</a>:</h4>
<p>so datafrogopt also uses potential_errors</p>



<a name="126925181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925181">(May 22 2018 at 14:15)</a>:</h4>
<p>?</p>



<a name="126925183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925183">(May 22 2018 at 14:15)</a>:</h4>
<p>no</p>



<a name="126925184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925184">(May 22 2018 at 14:15)</a>:</h4>
<p>er</p>



<a name="126925186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925186">(May 22 2018 at 14:15)</a>:</h4>
<p>what do you mean :)</p>



<a name="126925188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925188">(May 22 2018 at 14:15)</a>:</h4>
<p>it doesn't <em>now</em></p>



<a name="126925197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925197">(May 22 2018 at 14:15)</a>:</h4>
<p>well, I guess it would produce not "potential errors" but "true errors"</p>



<a name="126925205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925205">(May 22 2018 at 14:15)</a>:</h4>
<p>but I think it's fine to just rename <code>potential_errors</code> to <code>errors</code> for now</p>



<a name="126925214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925214">(May 22 2018 at 14:15)</a>:</h4>
<p>or to use the same vector anyway</p>



<a name="126925257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925257">(May 22 2018 at 14:16)</a>:</h4>
<p>if you want I can walk through how to interpret that output</p>



<a name="126925262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925262">(May 22 2018 at 14:16)</a>:</h4>
<p>so we can decide if it is legit :)</p>



<a name="126925269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925269">(May 22 2018 at 14:16)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126925284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925284">(May 22 2018 at 14:16)</a>:</h4>
<p>first off you have to run <code>-Zdump-mir=nll</code>, <a href="https://gist.github.com/nikomatsakis/6bcf9c827d6b962dde4d5ba16792f118" target="_blank" title="https://gist.github.com/nikomatsakis/6bcf9c827d6b962dde4d5ba16792f118">here is that output (gisted)</a></p>



<a name="126925302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925302">(May 22 2018 at 14:17)</a>:</h4>
<p>yep</p>



<a name="126925318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925318">(May 22 2018 at 14:18)</a>:</h4>
<p>we can also use the <code>borrow_region.facts</code> to figure out which borrow index corresponds to what :)</p>
<div class="codehilite"><pre><span></span>&quot;\&#39;_#2r&quot;    &quot;bw0&quot;   &quot;Mid(bb0[3])&quot;
&quot;\&#39;_#3r&quot;    &quot;bw1&quot;   &quot;Mid(bb3[2])&quot;
&quot;\&#39;_#5r&quot;    &quot;bw2&quot;   &quot;Mid(bb10[2])&quot;
</pre></div>



<a name="126925371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925371">(May 22 2018 at 14:18)</a>:</h4>
<p>i.e., <code>bw1</code> is the loan at <code>bb3[2]</code>, and <code>bw2</code> is the loan at <code>bb10[2]</code></p>



<a name="126925388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925388">(May 22 2018 at 14:18)</a>:</h4>
<p>those are the two potential errors we saw:</p>
<div class="codehilite"><pre><span></span>&quot;Mid(bb3[2])&quot; &quot;bw1&quot;
&quot;Mid(bb10[2])&quot; &quot;bw2&quot;
</pre></div>



<a name="126925408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925408">(May 22 2018 at 14:19)</a>:</h4>
<p>interestingly, both of them at the point of borrow. This is actually roughly what I expected.</p>



<a name="126925418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925418">(May 22 2018 at 14:19)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126925472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925472">(May 22 2018 at 14:20)</a>:</h4>
<p>if you look at the input:</p>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">Thing</span><span class="p">;</span><span class="w"></span>

<span class="w">    </span><span class="k">loop</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">match</span><span class="w"> </span><span class="n">temp</span><span class="p">.</span><span class="n">maybe_next</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nb">Some</span><span class="p">(</span><span class="n">v</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">            </span><span class="nb">None</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">        </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="126925484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925484">(May 22 2018 at 14:20)</a>:</h4>
<p>the first is saying that when you invoke <code>temp.maybe_next()</code>, it thinks <code>temp</code> is still borrowed</p>



<a name="126925498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925498">(May 22 2018 at 14:20)</a>:</h4>
<p>in fact, you need location-sensitivity to understand why that is not the case =)</p>



<a name="126925505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925505">(May 22 2018 at 14:20)</a>:</h4>
<p>:)</p>



<a name="126925520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925520">(May 22 2018 at 14:21)</a>:</h4>
<p>if you compare to the <a href="https://play.rust-lang.org/?gist=767c1d33ccca3807a4769c663a6bf841&amp;version=nightly&amp;mode=debug" target="_blank" title="https://play.rust-lang.org/?gist=767c1d33ccca3807a4769c663a6bf841&amp;version=nightly&amp;mode=debug">current NLL analysis, running on play,</a> you will see we get a similar error:</p>
<div class="codehilite"><pre><span></span>error[E0499]: cannot borrow `*temp` as mutable more than once at a time
  --&gt; src/main.rs:13:15
   |
13 |         match temp.maybe_next() {
   |               ^^^^
   |               |
   |               mutable borrow starts here in previous iteration of loop
   |               borrow later used here
</pre></div>



<a name="126925524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925524">(May 22 2018 at 14:21)</a>:</h4>
<p>the current NLL analysis (that is, what is running on rustc) is also location insensitive</p>



<a name="126925583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925583">(May 22 2018 at 14:22)</a>:</h4>
<p>yep</p>



<a name="126925585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925585">(May 22 2018 at 14:22)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126925591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925591">(May 22 2018 at 14:22)</a>:</h4>
<p>anyway the other error I suspect is similar</p>



<a name="126925594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925594">(May 22 2018 at 14:23)</a>:</h4>
<p>so basically " looks good <span class="emoji emoji-1f980" title="crab">:crab:</span> "</p>



<a name="126925616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925616">(May 22 2018 at 14:23)</a>:</h4>
<p>(the second error is occurring at the point of a reborrow)</p>



<a name="126925623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925623">(May 22 2018 at 14:23)</a>:</h4>
<p>I think that occurs because this analysis is <em>even more</em> location insensitive than what is on master right now</p>



<a name="126925624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925624">(May 22 2018 at 14:23)</a>:</h4>
<p>I've force pushed</p>



<a name="126925649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925649">(May 22 2018 at 14:23)</a>:</h4>
<blockquote>
<p>I've force pushed</p>
</blockquote>
<p>we should be able to add a <code>#[test]</code> for this case I think — basically asserting that your result gets the result it does</p>



<a name="126925653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925653">(May 22 2018 at 14:23)</a>:</h4>
<p>I guess we can merge this, then I can first make dump_enabled work</p>



<a name="126925706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925706">(May 22 2018 at 14:24)</a>:</h4>
<p>and then make all use potential_errors or something</p>



<a name="126925718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126925718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126925718">(May 22 2018 at 14:24)</a>:</h4>
<blockquote>
<blockquote>
<p>I've force pushed</p>
</blockquote>
<p>we should be able to add a <code>#[test]</code> for this case I think — basically asserting that your result gets the result it does</p>
</blockquote>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126926774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126926774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126926774">(May 22 2018 at 14:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> test added and force pushed again</p>



<a name="126927250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126927250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126927250">(May 22 2018 at 14:56)</a>:</h4>
<p>stray println in the test ? :)</p>



<a name="126927335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126927335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126927335">(May 22 2018 at 14:58)</a>:</h4>
<p>println in test is harmless</p>



<a name="126927342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126927342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126927342">(May 22 2018 at 14:58)</a>:</h4>
<p>though maybe not desired</p>



<a name="126927380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126927380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126927380">(May 22 2018 at 14:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> great! merged.</p>



<a name="126927706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog/near/126927706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/porting-to-datafrog.html#126927706">(May 22 2018 at 15:04)</a>:</h4>
<p>just copied that from the other test :)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>